// 最长回文串：https://leetcode-cn.com/problems/longest-palindrome/
package greedy

func longestPalindrome(s string) int {
	rst := 0
	// 计数
	cntMap := make(map[byte]int)
	for i := 0; i < len(s); i++ {
		c := s[i]
		cntMap[c] = cntMap[c] + 1
	}
	// 然后计算偶数
	for _, v := range cntMap {
		if v%2 == 0 {
			rst += v
		} else {
			rst += v - 1
		}
	}
	if rst < len(s) {
		return rst + 1
	}
	return rst
}
